CleanJava: Language Design for the Simplification of Object- Based Reasoning

نویسندگان

  • Greg Kulczycki
  • Gregory Kulczycki
چکیده

References are an integral part of popular object-oriented languages. They permit efficient data movement and parameter passing, and implement object identity. But their current use complicates reasoning by routinely introducing object aliasing. As a result, a significant body of research has focused on alias control techniques for object-oriented languages. This paper aims to simplify reasoning about objects by allowing programmers to ignore references in reasoning without losing the performance benefits they provide. It introduces a language design principle, cleanliness, that promotes the view of all variables as independent object values regardless of their implementations. To illustrate how this principle can be realized efficiently in practice, it describes the design of CleanJava. CleanJava is the result of re-engineering Java, focusing on four main areas of language design that involve references: object initialization, data movement, parameter passing, and the implementation of typically linked data structures.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Constructing Verifiably Correct Java Programs Using OCL and CleanJava

A recent trend in software development is building a precise model that can be used as a basis for the software development. Such a model may enable an automatic generation of working code, and more importantly it provides a foundation for correctness reasoning of code. In this paper we propose a practical approach for constructing a verifiably correct program from such a model. The key idea of...

متن کامل

Enhancing the Expressiveness of the CleanJava Language

The CleanJava language is a formal annotation language for Java to support Cleanroom-style functional program verification that views a program as a mathematical function from one program state to another. The CleanJava notation is based on the Java expression syntax with a few extensions, and thus its vocabulary is somewhat limited to that of Java. This often makes it difficult to specify the ...

متن کامل

The CleanJava Language for Functional Program Verification

Unlike Hoare-style program verification, functional program verification supports forward reasoning by viewing a program as a mathematical function from one program state to another and proving its correctness by essentially comparing two mathematical functions, the function computed by the program and its specification. Since it requires a minimal mathematical background and reflects the way t...

متن کامل

A Preliminary Investigation of Design Simplification by Analogy

This paper describes research on the simplification of designs using analogical reasoning. We present a definition of simplification and some examples, and then describe a prototype system that has been built to support our preliminary investigations of this problem. 1.0 Introduction This research is concerned with the representations and reasoning required for Design Simplification. A design c...

متن کامل

Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey

One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003